package cn.core.coding.mapper;

import cn.core.coding.eo.ProjectModule;
import cn.core.coding.qo.ProjectModuleQO;
import cn.core.coding.vo.ProjectModuleVO;
import cn.core.tool.util.Paging;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;

/**
 * 项目模块 mybatis 持久化接口
 */
public interface ProjectModuleMapper {

  /**
   * 项目模块 >>> 新增
   */
  public void save(@Param("eo") ProjectModule eo) throws Exception;

  /**
   * 项目模块 >>> 批量新增
   */
  public void saveBatch(@Param("paging") Paging<?> paging, @Param("eos") Collection<ProjectModule> eos) throws Exception;

  /**
   * 项目模块 >>> 全字段更新
   */
  public void update(@Param("eo") ProjectModule eo) throws Exception;

  /**
   * 项目模块 >>> 批量全字段更新
   */
  public void updateBatch(@Param("paging") Paging<?> paging, @Param("eos") Collection<ProjectModule> eos) throws Exception;

  /**
   * 项目模块 >>> 部分字段更新
   */
  public void updateSome(@Param("eo") ProjectModule eo) throws Exception;

  /**
   * 项目模块 >>> 批量部分字段更新
   */
  public void updateSomeBatch(@Param("paging") Paging<?> paging, @Param("eos") Collection<ProjectModule> eos) throws Exception;

  /**
   * 项目模块 >>> 条件更新
   */
  public void updateQuery(@Param("eo") ProjectModule eo, @Param("qo") ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 删除
   */
  public void remove(@Param("eo") ProjectModule eo) throws Exception;

  /**
   * 项目模块 >>> 批量删除
   */
  public void removeBatch(@Param("eos") Collection<ProjectModule> eos) throws Exception;

  /**
   * 项目模块 >>> 条件删除
   */
  public void removeQuery(@Param("qo") ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 数据量
   */
  public Long count(@Param("qo") ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 主键查询
   */
  public ProjectModule pk(@Param("qo") ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 查询
   */
  public Collection<ProjectModule> query(@Param("qo") ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 分页
   */
  public Collection<ProjectModule> paging(@Param("paging") Paging<?> paging, @Param("qo") ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 业务数据量
   */
  public Long countVo(@Param("qo") ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 业务主键查询
   */
  public ProjectModuleVO pkVo(@Param("qo") ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 业务查询
   */
  public Collection<ProjectModuleVO> queryVo(@Param("qo") ProjectModuleQO qo) throws Exception;

  /**
   * 项目模块 >>> 业务分页
   */
  public Collection<ProjectModuleVO> pagingVo(@Param("paging") Paging<?> paging, @Param("qo") ProjectModuleQO qo) throws Exception;

}
